package br.com.trentin.beans;

import br.com.trentin.entities.Cidade;
import br.com.trentin.services.CidadeService;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public final class CidadeBean implements Serializable{

    private CidadeService cidadeService;

    private boolean ativa;

    private Cidade cidade;
    
    private Cidade cidadeSelected;
    
    private List<String> ufs = new ArrayList<>();
    
    private List<Cidade> lista;
    
    public CidadeBean() {
        cidade = new Cidade();
        setAtiva(false);
    }

    public CidadeService getCidadeService() {
        return cidadeService;
    }

    public void setCidadeService(CidadeService cidadeService) {
        this.cidadeService = cidadeService;
    }

    public boolean isAtiva() {
        return ativa;
    }

    public void setAtiva(boolean ativa) {
        this.ativa = ativa;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public List<String> getUfs() {
        if (this.ufs.isEmpty()) {
            ufs.add("AC");
            ufs.add("AL");
            ufs.add("AM");
            ufs.add("AP");
            ufs.add("BA");
            ufs.add("CE");
            ufs.add("DF");
            ufs.add("ES");
            ufs.add("GO");
            ufs.add("MA");
            ufs.add("MG");
            ufs.add("MS");
            ufs.add("MT");
            ufs.add("PA");
            ufs.add("PB");
            ufs.add("PE");
            ufs.add("PI");
            ufs.add("PR");
            ufs.add("RJ");
            ufs.add("RN");
            ufs.add("RO");
            ufs.add("RR");
            ufs.add("RS");
            ufs.add("SC");
            ufs.add("SE");
            ufs.add("SP");
            ufs.add("TO");
        }
        
        return ufs;
    }

    public void setUfs(List<String> ufs) {
        this.ufs = ufs;
    }

    public List<Cidade> getLista() {
        return lista;
    }

    public void setLista(List<Cidade> lista) {
        this.lista = lista;
    }
    
    public void listar(){
        lista = cidadeService.findAll("");
    }
    
    public void incluir(){
        cidade = new Cidade();
        setAtiva(true);
    }
    
    public void cancelar(){
        cidade = new Cidade();
        setAtiva(false);
    }

    public Cidade getCidadeSelected() {
        return cidadeSelected;
    }

    public void setCidadeSelected(Cidade cidadeSelected) {
        this.cidadeSelected = cidadeSelected;
    }
    
    public void salvar(){
        cidadeService.addCidade(cidade);
        cancelar();
        listar();
    }
    
    public void exclui(){
        cidadeService.removeCidade(cidade);
        cancelar();
        listar();
    }
    
    public List<Cidade> autoCidade(String string){
        return cidadeService.findLikeNome(string);
    }
    
}
